Membre du Groupe : Ismael Mohamed 295465, Romain Pion 222525, Mathieu Guilbaud 223096 / Repo Github : https://github.com/MohamedXi/5rbig_project.git
Ces données concernent les élèves de deux écoles publiques portugaises et ont été recueillies au cours de l’année scolaire 2005-2006. Nous étudierons toutes les variables et leurs interactions, en mettant l’accent sur les facteurs qui influent sur la réussite des élèves.
Chargement des librairies
if(!require("ggplot2")){install.packages("ggplot2")}
## Loading required package: ggplot2
if(!require("dplyr")){install.packages("dplyr")}
## Loading required package: dplyr
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
if(!require("ggwordcloud")){install.packages("ggwordcloud")}
## Loading required package: ggwordcloud
if(!require("readxl")){install.packages("readxl")}
## Loading required package: readxl
if(!require("factorplot")){install.packages("factorplot")}
## Loading required package: factorplot
if(!require("wordcloud2")){install.packages("wordcloud2")}
## Loading required package: wordcloud2
if(!require("readxl")){install.packages("readxl")}
if(!require("factorplot")){install.packages("factorplot")}
if(!require("pheatmap")){install.packages("pheatmap")}
## Loading required package: pheatmap
if(!require("car")){install.packages("car")}
## Loading required package: car
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
if(!require("factoextra")){install.packages("factoextra")}
## Loading required package: factoextra
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
if(!require("cluster")){install.packages("cluster")}
## Loading required package: cluster
if(!require("tidyverse")){install.packages("tidyverse")}
## Loading required package: tidyverse
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ tibble 3.0.4 ✓ purrr 0.3.4
## ✓ tidyr 1.1.2 ✓ stringr 1.4.0
## ✓ readr 1.4.0 ✓ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## x car::recode() masks dplyr::recode()
## x purrr::some() masks car::some()
library(tidyverse)
library(cluster)
library(factoextra)
library(ggplot2)
options(warn=-1)
library(dplyr)
library(readr)
library(psych)
##
## Attaching package: 'psych'
## The following object is masked from 'package:car':
##
## logit
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
library(ggwordcloud)
library(wordcloud2)
library(readxl)
library(factorplot)
library(pheatmap)
library(car)
Chargement des données.
mprbig <- read_excel("MP-5RBIG.xlsx")
Affichage des différentes variable;
head(mprbig)
summary(mprbig)
## school sex age address
## Length:395 Length:395 Min. :15.0 Length:395
## Class :character Class :character 1st Qu.:16.0 Class :character
## Mode :character Mode :character Median :17.0 Mode :character
## Mean :16.7
## 3rd Qu.:18.0
## Max. :22.0
## famsize Pstatus Medu Fedu
## Length:395 Length:395 Min. :0.000 Min. :0.000
## Class :character Class :character 1st Qu.:2.000 1st Qu.:2.000
## Mode :character Mode :character Median :3.000 Median :2.000
## Mean :2.749 Mean :2.522
## 3rd Qu.:4.000 3rd Qu.:3.000
## Max. :4.000 Max. :4.000
## Mjob Fjob reason guardian
## Length:395 Length:395 Length:395 Length:395
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## traveltime studytime failures schoolsup
## Min. :1.000 Min. :1.000 Min. :0.0000 Length:395
## 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:0.0000 Class :character
## Median :1.000 Median :2.000 Median :0.0000 Mode :character
## Mean :1.448 Mean :2.035 Mean :0.3342
## 3rd Qu.:2.000 3rd Qu.:2.000 3rd Qu.:0.0000
## Max. :4.000 Max. :4.000 Max. :3.0000
## famsup paid activities nursery
## Length:395 Length:395 Length:395 Length:395
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## higher internet romantic famrel
## Length:395 Length:395 Length:395 Min. :1.000
## Class :character Class :character Class :character 1st Qu.:4.000
## Mode :character Mode :character Mode :character Median :4.000
## Mean :3.944
## 3rd Qu.:5.000
## Max. :5.000
## freetime goout Dalc Walc
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:3.000 1st Qu.:2.000 1st Qu.:1.000 1st Qu.:1.000
## Median :3.000 Median :3.000 Median :1.000 Median :2.000
## Mean :3.235 Mean :3.109 Mean :1.481 Mean :2.291
## 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:2.000 3rd Qu.:3.000
## Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
## health absences G1 G2
## Min. :1.000 Min. : 0.000 Min. : 3.00 Min. : 0.00
## 1st Qu.:3.000 1st Qu.: 0.000 1st Qu.: 8.00 1st Qu.: 9.00
## Median :4.000 Median : 4.000 Median :11.00 Median :11.00
## Mean :3.554 Mean : 5.709 Mean :10.91 Mean :10.71
## 3rd Qu.:5.000 3rd Qu.: 8.000 3rd Qu.:13.00 3rd Qu.:13.00
## Max. :5.000 Max. :75.000 Max. :19.00 Max. :19.00
## G3
## Min. : 0.00
## 1st Qu.: 8.00
## Median :11.00
## Mean :10.42
## 3rd Qu.:14.00
## Max. :20.00
Vérification s’il n’y a pas de valaure manquante
sum(is.na(mprbig))
## [1] 0
finalResult <- NULL
for (x in mprbig$G3) {
if (x < 10 ) {
finalResult <- c(finalResult,"fail")
} else {
finalResult <- c(finalResult,"pass")
}
}
mprbig <- data.frame(mprbig,finalResult)
mprbig
academicGrade <- NULL
for (x in mprbig$G3) {
if (x >= 16 ) {
academicGrade <- c(academicGrade,"A")
}
if (x >= 14 && x < 16) {
academicGrade <- c(academicGrade,"B")
}
if (x >= 12 && x < 14) {
academicGrade <- c(academicGrade,"C")
}
if (x >= 10 && x < 12) {
academicGrade <- c(academicGrade,"D")
}
if (x <= 9){
academicGrade <- c(academicGrade,"E")
}
}
mprbig <- data.frame(mprbig,academicGrade)
mprbig
Le genre La majorité des individus sont des femmes
ggplot(data=mprbig,aes(x=sex,fill=sex)) + geom_bar()
L’éducation de la mère La majorité des individus ont une mère avec un niveau d’étude élevé
ggplot(data=mprbig,aes(x=Medu,fill=Medu))+geom_bar()
L’éducation du père La majorité des individus ont un père ayant un niveau d’étude élevé
ggplot(data=mprbig,aes(x=Fedu,fill=Fedu))+geom_bar()
Le support pédagogique suplémentaire La majorité des individus n’ont pas de support pédagogique suplémentaire
ggplot(data=mprbig,aes(x=schoolsup,fill=schoolsup))+geom_bar()
Le soutien éducatif familial La majorité des individus ont un soutien éducatif familial
ggplot(data=mprbig,aes(x=famsup,fill=famsup))+geom_bar()
Les cours de mathématiques payant suplémentaire La majorité des individus ne suivent pas de cours de mathématiques payant suplémentaire
ggplot(data=mprbig,aes(x=paid,fill=paid))+geom_bar()
Nombre d’individus voulant suivre des études supérieurs La majorité des individus veulent suivre des études supérieurs
ggplot(data=mprbig,aes(x=higher,fill=higher))+geom_bar()
L’accès à internet à son domicile La majorité des individus ont accès à internet
ggplot(data=mprbig,aes(x=internet,fill=internet))+geom_bar()
Les admis La majorité des individus ont réussie leur examen
ggplot(data=mprbig,aes(x=finalResult,fill=finalResult))+geom_bar()
Le niveau obtenu à l’examen La majorité des individus ont obtenu le niveau E
ggplot(data=mprbig,aes(x=academicGrade,fill=academicGrade))+geom_bar()
## 2.2 Représente les associations entre des paires de variables catégorielles
Analyse du genre sur le support pédagogique suplémentaire Proportionellement, les femmes reçoivent plus souvent un support pédagogique suplémentaire que les hommes
ggplot(data=mprbig,aes(x=sex,fill=schoolsup))+geom_bar()
Analyse du genre sur l’aide éducatif familial Les hommes reçoivent plus souvent de l’aide éducatif familial que les femmes
ggplot(data=mprbig,aes(x=sex,fill=famsup))+geom_bar()
Analyse du genre sur l’envie de suivre des études supérieurs Les femmes ont majoritairement envie de faire des études supérieurs
ggplot(data=mprbig,aes(x=sex,fill=higher))+geom_bar()
Analyse du genre sur l’obtention du diplome Les hommes ont proportionellement mieux réussie à obtenir leur diplome que les femmes
ggplot(data=mprbig,aes(x=sex,fill=finalResult))+geom_bar()
Analyse du genre sur le niveau obtenu suite à l’examen Les femmes ont de meilleurs résultats que les hommes
ggplot(data=mprbig,aes(x=academicGrade,fill=sex))+geom_bar()
Analyse du niveau d’étude de la mère sur l’obtention de l’examen Les individus ayant réussie leur examen ont majoritairement une mère avec un haut niveau d’étude
ggplot(data=mprbig,aes(x=Medu,fill=finalResult))+geom_bar()
Analyse du support pédagogique suplémentaire sur l’aide éducatif familial Les individus ayant du support pédagogique suplémentaire ont plus d’aide éducatif familial
ggplot(data=mprbig,aes(x=schoolsup,fill=famsup))+geom_bar()
Analyse de l’envie de faire des études supérieurs sur le niveau d’étude de la mère Les individus ayant envie de faire des études supérieurs ont en grande partie une mère ayant un haut niveau d’étude
ggplot(data=mprbig,aes(x=Medu,fill=higher))+geom_bar()
Analyse de l’envie de faire des études supérieurs sur le niveau d’étude du père Les individus ayant envie de faire des études supérieurs ont majoritairement un père ayant un niveau d’étude élevé
ggplot(data=mprbig,aes(x=Fedu,fill=higher))+geom_bar()
Analyse du niveau d’étude du père sur l’obtention de l’examen Le niveau d’étude du père ne semble pas avoir d’impact sur l’obtention de l’examen
ggplot(data=mprbig,aes(x=Fedu,fill=finalResult))+geom_bar()
Analyse de la possession de internet sur l’obtention de l’examen La majorité des individus ayant réussie leur examen ont internet
ggplot(data=mprbig,aes(x=internet,fill=finalResult))+geom_bar()
Analyse de la possession de internet sur le niveau obtenu à l’examen Les meilleurs notes ont été obtenue par des individus ayant internet ( grade E )
ggplot(data=mprbig,aes(x=academicGrade,fill=internet))+geom_bar()
## 2.3 Étudiez les associations entre des paires de variables catégorielles
Analyse du genre sur l’envie de faire des études supérieurs
# association sex, envie de faire des études supérieurs
test = chisq.test(mprbig$sex,mprbig$higher)
test$statistic # la statistique du Chi2
## X-squared
## 7.685935
test$parameter # le nombre de degrés de libertés
## df
## 1
test$p.value # la p-value
## [1] 0.005565284
test$observed # la matrice observée de départ
## mprbig$higher
## mprbig$sex no yes
## F 4 204
## M 16 171
test$expected # la matrice attendue sous l'hypothèse nulle d'absence de biais
## mprbig$higher
## mprbig$sex no yes
## F 10.531646 197.4684
## M 9.468354 177.5316
On constate que la p-value étant inférieur à 5%, On rejette l’hypothèse de dépendance entre les deux variables
Analyse de l’envie de faire des études supérieurs sur l’obtention de l’examen
# association envie de faire des études supérieures, obtention de l'examen
test = chisq.test(mprbig$higher,mprbig$finalResult)
test$statistic # la statistique du Chi2
## X-squared
## 8.353142
test$parameter # le nombre de degrés de libertés
## df
## 1
test$p.value # la p-value
## [1] 0.00385021
test$observed # la matrice observée de départ
## mprbig$finalResult
## mprbig$higher fail pass
## no 13 7
## yes 117 258
test$expected # la matrice attendue sous l'hypothèse nulle d'absence de biais
## mprbig$finalResult
## mprbig$higher fail pass
## no 6.582278 13.41772
## yes 123.417722 251.58228
On constate que la p-value étant inférieur à 5%, On rejette l’hypothèse de dépendance entre les deux variables
student <- mprbig
var(student$age)
## [1] 1.628285
age= ggplot(aes(x=age), data=student)+
geom_histogram(binwidth = 0.50, fill='darkblue', color='darkblue')+
ggtitle("Age of students")
age
L’histogramme ci-dessus montre clairement que la plupart des élèves ont entre 15 et 18 ans, ce qui est logique puisque la plupart des élèves commencent le lycée à l’âge de 15 ans et le terminent à 18 ans, étant donné qu’en général, les lycées du monde entier ne durent que 3 ans.
ggplot(student,aes(x=studytime,y=G3)) + stat_summary(fun="mean", geom="bar",fill="darkblue") + ggtitle("G3 versus studytime")
Comme le montre la figure ci-dessus, les étudiants qui étudient plus longtemps obtiennent de meilleures notes finales que ceux qui étudient moins longtemps.
Répartition des échecs précédents.
ggplot(data = student, aes(x = failures)) +
geom_histogram(binwidth = 0.50, fill='darkblue', color='darkblue') +
geom_density() +
ggtitle("Distribution of previous failures in student data") +
xlab("Failures") +
ylab("Distribution of Failures")+
theme(plot.title=element_text(face="bold"))
Afficher la corrélation entre les échecs et les notes.
cor(student$G3, student$failures)
## [1] -0.3604149
plot(x=student$failures, y=student$G3, xlab = "Failures", ylab = "Rank", col = "blue")
absences= ggplot(data=student,aes(x=absences, y=G1, col=sex))+geom_point()+geom_smooth(method="lm",se=F)+facet_grid(~sex)
absences
## `geom_smooth()` using formula 'y ~ x'
À partir du graphique ci-dessus, nous pouvons voir comment l’absence affecte négativement les performances des garçons, mais l’absence de cours n’a pas d’impact négatif sur les performances des filles en classe.
var(student$G1)
## [1] 11.01705
ages= ggplot(data=student,aes(x=age, fill=sex))+geom_histogram(binwidth=0.50)
ages
Comme le montre clairement le graphique ci-dessus, la plupart des étudiants de plus de 18 ans sont des étudiants de sexe masculin car il n’y a pas d’étudiantes de plus de 20 ans.
G1 par rapport au sexe et à l’âge
G1=ggplot(data=student,aes(x=age, y=G1, col=sex, shape=sex))+geom_point()+geom_smooth(method="lm",se=F)+facet_grid(~sex)
G1
## `geom_smooth()` using formula 'y ~ x'
Nous pouvons voir que les performances des filles s’améliorent avec l’âge, cependant, une diminution des performances des garçons et nettement visible dans le graphique ci-dessus.
————– g2
numeric_features <- Filter(is.numeric, student)
library(pheatmap)
pheatmap(cor(numeric_features))
Comme montre la carte, la corrélation varie entre 1 et -1. La couleur rouge correspond à la corrélation élevée entre nos caractéristiques.
Par exemple : Corrélation positive : G1 et G3 Corrélation négative : les failures et le studytime présentent une corrélation négative
#plot(with(student,G2), with(student,G3), xlab='G1', ylab='G3')
ggplot(student, aes(x=G2,y=G3)) + geom_point() + geom_smooth(method="lm", se=FALSE)
## `geom_smooth()` using formula 'y ~ x'
On peut remarquer le G3 présente une forte corrélation positive avec le G2.
ggplot(student,aes(x=G3))+geom_histogram(fill="darkblue",color="darkblue",na.rm=TRUE)+
labs(title="Classement des notes G3 par rapport à l'âge",y="",x="")+facet_wrap(~age)+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
contengency <- table(student$G3,student$sex)
print(contengency)
##
## F M
## 0 23 15
## 4 1 0
## 5 3 4
## 6 13 2
## 7 4 5
## 8 14 18
## 9 17 11
## 10 30 26
## 11 29 18
## 12 11 20
## 13 17 14
## 14 14 13
## 15 16 17
## 16 6 10
## 17 3 3
## 18 5 7
## 19 2 3
## 20 0 1
Consultation de la dépendance avec un stack bar chart.
ggplot(student,aes(x=G3,fill=sex))+geom_bar(position="stack")+theme(axis.text.x = element_text(angle = 45, hjust = 1))+
labs(x="Note (G3)",y="Sex",title="Notes des élèves par sexe")
On fait ensuite une comparaison avec des % pour mieu representer le graph.
ggplot(student,aes(x=G3,fill=sex))+geom_bar(position="fill")+theme(axis.text.x = element_text(angle = 45, hjust = 1))+
labs(x="Note (G3)",y="Sexe",title="Notes des élèves par sexe en %")
Créer un ensemble de données constitué uniquement de données mathématiques, avec des variables sexe (sex) et note finale(G3.
dataSexG3 = subset(student, select = c(sex, G3))
glimpse(dataSexG3)
## Rows: 395
## Columns: 2
## $ sex <chr> "F", "F", "F", "F", "F", "M", "M", "F", "M", "M", "F", "F", "M", …
## $ G3 <dbl> 6, 6, 10, 15, 10, 15, 11, 6, 19, 15, 9, 12, 14, 11, 16, 14, 14, 1…
Nous avons donc une variable catégorielle qui est le sex. Et nous avons une variable quantitative qui est *G3$ (note final)
Histograms/barplot des différentes variables qui seront pertinentes pour les tests statistiques.
sexGraph <- table(dataSexG3$sex)
par(mfrow=c(2,2))
hist(dataSexG3$G3, breaks = 30, col = "darkblue", main = "Histogram de la variable student")
barplot(sexGraph, col="darkblue", main = "Barplot de la variable sex")
Graphiques de densité pour l’âge, les absences et le note finale
G3Dens <- density(dataSexG3$G3)
plot(G3Dens)
Nous pouvons voir quelques tendances claires dans les données.Il y a seulement un peu plus de femmes que d’hommes, et la note finale en mathématiques est à peu près également répartie.le plus grand nombre de personnes qui ont échoué aux tests, c’est-à-dire qui ont reçu la note 0, fera pencher toute analyse des moyennes des notes finales nettement vers la gauche. Cela est assez évident si l’on regarde le graphique de densité ci-dessus.
Le test de Bartlett
bartlett.test(G3[dataSexG3$G3 > 0] ~ sex[dataSexG3$G3 > 0], data=dataSexG3)
##
## Bartlett test of homogeneity of variances
##
## data: G3[dataSexG3$G3 > 0] by sex[dataSexG3$G3 > 0]
## Bartlett's K-squared = 0.12148, df = 1, p-value = 0.7274
Le test de Levene
leveneTest(y = dataSexG3$G3, group = dataSexG3$sex)
Visualisation par Boxplot des notes finales pour chaque sexe.
ggplot(dataSexG3, aes(x = sex, y = G3)) +
geom_boxplot(col = "black") +
ggtitle("Moyennes des notes finales par sexe")
En se basant sur les deux tests et la visualisation des données en question, on peut affirmer sans risque que l’hypothèse d’homogénéité de la variance est remplie dans cet exemple.
L’homogénéité des variances t.test
t.test(dataSexG3$G3[dataSexG3$sex=="F" & dataSexG3$G3>0], dataSexG3$G3[dataSexG3$sex=="M" & dataSexG3$G3>0])
##
## Welch Two Sample t-test
##
## data: dataSexG3$G3[dataSexG3$sex == "F" & dataSexG3$G3 > 0] and dataSexG3$G3[dataSexG3$sex == "M" & dataSexG3$G3 > 0]
## t = -1.9386, df = 351.54, p-value = 0.05335
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -1.331331307 0.009583978
## sample estimates:
## mean of x mean of y
## 11.20541 11.86628
Les notes finales moyennes des filles et des garçons sont présentées dans la console après avoir effectué le test t. Les filles ont obtenu une note de 11,20, et les garçons une note moyenne de 11,86. Cette différence est égale à environ 0,66.
age.g3 <- aov(G3 ~ factor(age), data = student)
TukeyHSD(age.g3)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = G3 ~ factor(age), data = student)
##
## $`factor(age)`
## diff lwr upr p adj
## 16-15 -0.2272514 -2.265444 1.8109414 0.9999747
## 17-15 -0.9805874 -3.046104 1.0849292 0.8346939
## 18-15 -1.7073171 -3.862680 0.4480461 0.2374238
## 19-15 -3.0477642 -6.250733 0.1552050 0.0753852
## 20-15 2.7439024 -5.368590 10.8563947 0.9695415
## 21-15 -4.2560976 -18.141054 9.6288584 0.9825598
## 22-15 -3.2560976 -17.141054 10.6288584 0.9965457
## 17-16 -0.7533359 -2.696271 1.1895995 0.9368291
## 18-16 -1.4800657 -3.518258 0.5581271 0.3461517
## 19-16 -2.8205128 -5.945837 0.3048114 0.1110364
## 20-16 2.9711538 -5.110997 11.0533052 0.9521487
## 21-16 -4.0288462 -17.896097 9.8384045 0.9872488
## 22-16 -3.0288462 -16.896097 10.8384045 0.9977951
## 18-17 -0.7267297 -2.792246 1.3387868 0.9621847
## 19-17 -2.0671769 -5.210389 1.0760349 0.4802791
## 20-17 3.7244898 -4.364595 11.8135750 0.8555397
## 21-17 -3.2755102 -17.146803 10.5957828 0.9963925
## 22-17 -2.2755102 -16.146803 11.5957828 0.9996581
## 19-18 -1.3404472 -4.543416 1.8625221 0.9074950
## 20-18 4.4512195 -3.661273 12.5637118 0.7052971
## 21-18 -2.5487805 -16.433736 11.3361755 0.9992827
## 22-18 -1.5487805 -15.433736 12.3361755 0.9999746
## 20-19 5.7916667 -2.659721 14.2430543 0.4242194
## 21-19 -1.2083333 -15.293979 12.8773127 0.9999958
## 22-19 -0.2083333 -14.293979 13.8773127 1.0000000
## 21-20 -7.0000000 -22.936089 8.9360893 0.8835131
## 22-20 -6.0000000 -21.936089 9.9360893 0.9457419
## 22-21 1.0000000 -18.517644 20.5176436 0.9999999
Les résultats montrent qu’il n’y a pas de différence dans les notes finales entre les différents groupes d’âge. Les valeurs p Adj sont toutes supérieures à 0,05.
Preparion de la donné
# nombre de ligne
nbl <- 40
# creation du data frame
kdf <- data.frame(mprbig$age,mprbig$studytime,mprbig$failures,mprbig$absences,mprbig$G1,mprbig$G2,mprbig$G3)
#scaling the data
kdf <- scale(kdf[0:nbl,])
Désignation du meilleur nombre de clusters
#Average Silhouette Method
fviz_nbclust(kdf, kmeans, method = "silhouette")
#Gap Statistic Method (methode pour savoir le nombre de cluster)
gap_stat <- clusGap(kdf, FUN = kmeans, nstart = 25, K.max = 10)
fviz_gap_stat(gap_stat)
Visualisation des clusters
krbig <- kmeans(kdf, centers = 2, nstart = 50)
fviz_cluster(krbig, data = kdf)
Anlalise des clusters
fkrbig <- cbind(mprbig[0:nbl,], clusterNum = krbig$cluster)
ggplot(fkrbig, aes(x = clusterNum, y = G3)) +
geom_boxplot(aes(group = clusterNum)) +
stat_summary(fun = "mean", geom = "point", size= 2) +
ggtitle("Note par rapport au cluster")
Dans le le graphique ci-dessus, nous pouvons observer que le premier cluster montre ceux qui ont reussi et dans le deuxiéme cluster ceux qui n’ont pas réussi.
On remarque que les cluster se font par rapport au note , on peux en déduire que les variables utilisées n’ont pas d’influence sur les notes
Visualisation du Regroupement hiérarchique
#nombre de ligne
nbl <- 40
#creation du data frame
hdf <- data.frame(mprbig$age,mprbig$studytime,mprbig$failures,mprbig$absences,mprbig$G1,mprbig$G2,mprbig$G3)
# la matrice de distance
distmat <- dist(hdf[0:nbl,],method = 'euclidean')
hrbig <- hclust(distmat)
plot(hrbig)
On remarque bien qu’il y a deux grande partie
Découpe de l’arbre en clusters
#decoupe de l'arbre en cluster
cut <- cutree(hrbig,2)
plot(hrbig)
rect.hclust(hrbig , k = 2, border = 2:6)
Analise des donner dans chaque clusters
fhrbig <- cbind(mprbig[0:nbl,], clusterNum = cut)
ggplot(fhrbig, aes(x = clusterNum, y = G3)) +
geom_boxplot(aes(group = clusterNum)) +
stat_summary(fun = "mean", geom = "point", size= 2) +
ggtitle("Note par rapport au cluster")
On remarque que c’est la meme disposition qu’avec le k-moyenne mais les cluster sont inversés : dans le premier nous avons les moins bonne notes et dans le 2ieme les meilleurs notes
On remarque les mêmes clusters que le k-moyenne, on peux dire que les variable utilisé n’ont pas d’influence sur les notes
Suite à l’étude que nous avons mené sur les données du fichier CSV/XLXS, nous pouvons conclure que le facteur qui influe le plus sur la notation des étudiants est le genre. En effet, nous avons constaté que les filles sont beaucoup plus motivée à l’idée de poursuivre des études supérieures et ont plus de support pédagogique que les garçons(support de cours personnel supplémentaire).
Pour les garçons, ils sont plus âgés, étudient moins et ont plus d’absences que les filles. Cela entraîne un retard qu’ils n’arrivent pas à rattraper par la suite.
Ce qui permet donc d’affirmer que les filles s’en mieux que les garçons dans leurs études de manière générale.